/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ventasInternet.business;

import com.ventasInternet.entity.Imagen;
import com.ventasInternet.entity.Producto;
import com.ventasInternet.entityDAO.ImagenFacadeLocal;
import com.ventasInternet.entityDAO.ProductoFacadeLocal;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author olpo
 */
@Stateless
public class GestionProductosFacade implements GestionProductosFacadeLocal {
    
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @EJB
    ProductoFacadeLocal productoFacadeLocal;
    @EJB
    ImagenFacadeLocal imagenFacadeLocal;
    @Override
    public void registrarProducto(Producto producto, List<Imagen> listImagenes) {
        if(producto != null && listImagenes != null){
            for (Imagen imagen : listImagenes) {
                imagen.setProductoidProd(producto);
                producto.getImagenList().add(imagen);
            }
            productoFacadeLocal.create(producto);
        }
    }
    @Override
    public void modificarProducto(Producto producto,List<Imagen> listImagenes){
        List<Imagen> listImagenesTmp = new ArrayList<Imagen>();
        if(producto != null && listImagenes != null){
            //producto.setImagenList(null);
            for (Imagen imagen : listImagenes) {
                imagen.setProductoidProd(producto);
                listImagenesTmp.add(imagen);
            }
            producto.setImagenList(listImagenesTmp);
            productoFacadeLocal.edit(producto);
        }
       
    }

    @Override
    public List<Producto> findAllProductos() {
        return productoFacadeLocal.findAll();
    }
    
    @Override
    public Producto findProducto(Object id) {
        Producto pro=null;
        pro = productoFacadeLocal.find(id);
        pro.setImagenList(imagenFacadeLocal.listaImagesProducto(pro));
        return pro;
    }
    
    
}
